package com.ruoyi.system.service;

import java.util.List;
import com.ruoyi.common.core.domain.AjaxResult;
import com.ruoyi.system.domain.Database;

/**
 * 数据库管理 服务层
 * 
 * @author ruoyi
 */
public interface IDatabaseService
{
    /**
     * 查询数据库信息
     * 
     * @param dbId 数据库ID
     * @return 数据库信息
     */
    public Database selectDatabaseById(Long dbId);

    /**
     * 查询数据库列表
     * 
     * @param database 数据库信息
     * @return 数据库集合
     */
    public List<Database> selectDatabaseList(Database database);

    /**
     * 新增数据库
     * 
     * @param database 数据库信息
     * @return 结果
     */
    public int insertDatabase(Database database);

    /**
     * 修改数据库
     * 
     * @param database 数据库信息
     * @return 结果
     */
    public int updateDatabase(Database database);

    /**
     * 删除数据库信息
     * 
     * @param dbId 数据库ID
     * @return 结果
     */
    public int deleteDatabase(Long dbId);

    /**
     * 批量删除数据库信息
     * 
     * @param dbIds 需要删除的数据库ID
     * @return 结果
     */
    public int deleteDatabaseByIds(Long[] dbIds);

    /**
     * 测试数据库连接
     * 
     * @param dbId 数据库ID
     * @return 结果
     */
    public AjaxResult testDatabaseConnection(Long dbId);

    /**
     * 获取数据库表列表
     * 
     * @param dbId 数据库ID
     * @return 数据库表列表
     */
    public List<Object> listDatabaseTables(Long dbId);

    /**
     * 备份数据库
     * 
     * @param database 数据库信息
     * @return 结果
     */
    public AjaxResult backupDatabase(Database database);

    /**
     * 还原数据库
     * 
     * @param database 数据库信息
     * @return 结果
     */
    public AjaxResult restoreDatabase(Database database);

    /**
     * 获取备份历史
     * 
     * @param dbId 数据库ID
     * @return 备份历史列表
     */
    public List<Object> getBackupHistory(Long dbId);
} 